kancollefandomcom-20200213-history
User blog:Martirsadota/The Great HTML5 Switcheroo: How it Affects TTKs Like You
TL;DR: The migration of Kancolle to HTML5 should have no effect on anyone's gameplay experience except for a different UI, since behind the scenes, it still works the same. I am not ruling out the possibility of a complete overhaul; I just see it as highly unlikely. Even then, impact should be limited to the first few weeks after migration as the viewers are being adapted to new code. So as we all know, Kancolle is about to abandon Flash in favor of HTML5, and I have seen this cause some panic within the community; in particular, there has been some recent fears that the upcoming migration to HTML5 would force players to play without their viewers as these would break when the migration is completed. Hopefully this post would alleviate those fears. But first, as I always do in my blog posts, a little history: =Why the Sudden Switcheroo?= We would continue to be happily playing Kancolle if not for a sudden announcement from the mother of Flash, Adobe. Adobe recently announced that they will be declaring Flash as end-of-life by 2020, encouraging developers and content creators to migrate to modern web technologies like HTML5's canvas and video. The company cited Flash's inherent security flaws and the resources required to maintain Flash as reasons for abandoning it. Whatever the reason, by 2020, Flash would be at its end of life. This means that browsers will stop supporting Flash by that timeSee the posts by Microsoft,Google, Mozilla, and Apple., and you won't be able to run Flash-based content (like Kancolle as it is right now) in the browser. With roughly three years left before the inevitable, Kancolle made the switch to HTML5.This of course assumes that Kancolle will still be Kancolle by 2020; let's keep our hopes up! =What is HTML5?= Warning! Technical Stuff Ahead! HTML5 is the latest version of HTML, a language for creating web pages. If that sounded like nerd talk to you, think of it this way: HTML can make you cake, while HTML5 can make those fancy cakes with a photograph printed directly on the icing; it's still cake, just more multimedia.Both are also lies. HTML5 adds multimedia features like video and audio playback without the need for plugins, as well as a canvas element that allows for programmatic rendering of 2D elements (basically 2D animation). Canvas is of particular interest, because this is the element that could, by any stretch of the imagination, be capable of creating the user interface for an HTML5-based Kancolle client. And if you want proof, look no further than KC3's replayer. ="Sure, that's sweet tech and all, but how about me?"= Okay, I put my opinion as what the devs may use to migrate Kancolle to HTML5. But the important question is: "Would this affect my gameplay?" Here is where I place the thesis of my case: The migration of Kancolle to HTML5 should have no effect on anyone's gameplay experience except for a different UI, since behind the scenes, it still works the same. And why so? It's because only the front-end has been changed; the back-end would most likely remain the same. This one's rather hard to explain in prose, so let me pull up a few visual aids: This is how Kancolle looks like when played straight on the browser (i.e., without any viewers or whatever). You can think of the browser as the client which runs the Flash files required by Kancolle; this is what I'm referring to as the front-end, because this is what you see as Kancolle. The client then communicates with the servers so that you may be able to play the game. The green boxes in the middle denote methods by which the client (your browser running Flash) communicates with the Kancolle servers; this is the back-end, as these work behind the scenes, invisible to you.Unless you're following some of my tutorials; if so, you're getting glimpses of the back-end. A critical point here is that gameplay would not be reasonably affected if these methods were not changed. And I don't have reason to believe that these would be changed in any big way. A Case of Easing Migration The main reason for this is to ease migration; in this case, if you're moving the Kancolle client from Flash to HTML5, it makes perfect sense to have the new client communicate in the same way as the old one, rather than making a new client and adapting the server code so that it can communicate with that new client. It's like buying a new phone; you'd want it to be able to output the music you play to those wired headphones you already own, rather than buying a new phone and new earbuds just because that new phone cannot communicate to your wired headphones without an expensive adapter. With that in mind, look at how easy it is to migrate to HTML5 if the new client communicated in the same way as the old one: Bam! Only the client needs to be swapped; everything else is unchanged. Playing with Viewers How about the now-common case of playing with a viewer (KC3Kai, poi, KCV, EO)? This is how it looks like: Another critical point shows: the viewer is independent of the client. You can change one without affecting the other. You can switch from KCV to KC3Kai (and vice versa) without affecting the game itself, right? Well, it works the other way around, too: So as you can see, nothing drastic should happen even when Kancolle decides to switch to HTML5. Should, that is. =The Worst-case Scenario= I am not ruling out the possibility of a complete overhaul; I just see it as highly unlikely. In any case, let's see what happens when a complete overhaul does happen: # Tanaka et.al. migrates to HTML5. The entire back-end is overhauled as a result. # People start hammering support channels of popular viewers, complaining that their viewer has stopped working. # Developers of viewers start examining the new communication methods in the back-end. # They start making code to read these new communications for their viewers. # They release the new versions. # Everybody is playing happily again. See? It's not all that bad. When push comes to shove, it will break, but sure as day follows nightI wanna hang myself for using this metaphor., it will be fixed. At least for viewers with active maintainers. Side Note: Shipgirl CGs This is the territory of the uncertain. Currently, shipgirl CGs are distributed in Flash files with all forms (normal, damaged, banners, etc.) packaged inside. This makes it difficult for a normal player to get the CGs themselves.It's not impossible, though. Once KC moves away from Flash, how are they going to distribute them? I am certain they want to maintain the difficulty of getting at the CGs high. Some possible scenarios:I originally mentioned them here. * .png files with "encrypted" filenames. Just like how sound files are distributed now, this should make guessing filenames harder, but not impossible.The staff here at Wiki can get any voice line with the KC master data (which is loaded by the game when it starts up) and around three lines of JavaScript code. * As encrypted assets. This is what we fear the most. Then again, deobfuscating the decryption code or getting the decryption keys might prove to be a trivial task.One game's asset encryption was defeated with five lines of code. Do note that this is mainly of interest to Wiki staff or anyone who has an interest in datamining the game; normal players need not worry as this has no impact on gameplay whatsoever. =Final Thoughts= Remember when YouTube used to be in Flash? Now that it's in HTML5, did anything change? Nope, everything it still there.Except for that game of Snake you can invoke to pass the time while your video is buffering, or that Nyan Cat progress bar. It functioned the same way as it did back then—heck, it was even improved along the way. Same thing will happen to Kancolle. The migration to HTML5 should get you hyped, not worried. It's alright, nothing would break; and if something does break, there's someone on the Internet who would fix it. Now, I wonder what would they do with the Android app... =Notes and References= Category:Blog posts